package main

import (
	"encoding/gob"
	"rpc_server_demo/server"
)

type User struct {
	Name string
	Age  int
}

const (
	REQUEST_SUCCESS = iota
	REQUEST_FAILURE
)

// 用于测试用户查询的方法
func queryUser(uid int) (User, int) {
	user := make(map[int]User)
	// 假数据
	user[0] = User{"zs", 20}
	user[1] = User{"ls", 21}
	user[2] = User{"ww", 22}
	// 模拟查询用户
	if u, ok := user[uid]; ok {
		return u, REQUEST_SUCCESS
	}
	return User{}, REQUEST_SUCCESS
}

func main() {
	// 编码中有一个字段是interface{}时，要注册一下
	gob.Register(User{})
	addr := ":8000"
	// 创建服务端
	srv := server.NewServer(addr)
	// 将服务端方法，注册一下
	srv.Register("queryUser", queryUser)
	// 服务端等待调用
	go srv.Run()
	ch := make(chan int, 0)
	<-ch
	//time.Sleep(1000*time.Second)
}
